﻿using System;

namespace Terraria.DataStructures
{
	// Token: 0x02000481 RID: 1153
	public struct PlacementHook
	{
		// Token: 0x060026BA RID: 9914 RVA: 0x0001AEEF File Offset: 0x000190EF
		public PlacementHook(Func<int, int, int, int, int, int> hook, int badReturn, int badResponse, bool processedCoordinates)
		{
			this.hook = hook;
			this.badResponse = badResponse;
			this.badReturn = badReturn;
			this.processedCoordinates = processedCoordinates;
		}

		// Token: 0x060026BB RID: 9915 RVA: 0x00492C40 File Offset: 0x00490E40
		public static bool operator ==(PlacementHook first, PlacementHook second)
		{
			return first.hook == second.hook && first.badResponse == second.badResponse && first.badReturn == second.badReturn && first.processedCoordinates == second.processedCoordinates;
		}

		// Token: 0x060026BC RID: 9916 RVA: 0x00492C8C File Offset: 0x00490E8C
		public static bool operator !=(PlacementHook first, PlacementHook second)
		{
			return first.hook != second.hook || first.badResponse != second.badResponse || first.badReturn != second.badReturn || first.processedCoordinates != second.processedCoordinates;
		}

		// Token: 0x060026BD RID: 9917 RVA: 0x0001AF0E File Offset: 0x0001910E
		public override bool Equals(object obj)
		{
			return obj is PlacementHook && this == (PlacementHook)obj;
		}

		// Token: 0x060026BE RID: 9918 RVA: 0x0001AF2B File Offset: 0x0001912B
		public override int GetHashCode()
		{
			return base.GetHashCode();
		}

		// Token: 0x04004375 RID: 17269
		public const int Response_AllInvalid = 0;

		// Token: 0x04004376 RID: 17270
		public Func<int, int, int, int, int, int> hook;

		// Token: 0x04004377 RID: 17271
		public int badReturn;

		// Token: 0x04004378 RID: 17272
		public int badResponse;

		// Token: 0x04004379 RID: 17273
		public bool processedCoordinates;

		// Token: 0x0400437A RID: 17274
		public static PlacementHook Empty = new PlacementHook(null, 0, 0, false);
	}
}
